A multi-core processor is a single computing component with two or more independent processing units called “cores.” Cores are units that read and execute program instructions. The single processor can run multiple instructions on separate cores at the same time, increasing overall speed for programs amenable to parallel computing. The multiple cores may be incorporated onto a single integrated circuit. There are at two major types of multicore processors: symmetric multicore processors (SMP) and asymmetric multicore processors (AMP). A symmetric multiprocessor (SMP) includes two or more identical processors controlled by a single operating system instance that treats all processors equally, reserving none for special purposes. Symmetric multicore processors have a plurality of cores of a same core type. Asymmetric multicore processors have a plurality of cores which may be of a different architecture from one another. Each core may or may not run an operating system
An AMP can have a first set of cores that is more efficient than a second set of cores. The second set of cores can be designed for performance. Efficiency is concerned with minimum energy consumed per instruction processed. Performance is concerned with maximum number of instructions processed per unit of time. In the prior art, to obtain efficiency, some cores would be set to idle or “dark” (shut down, not processing instructions). A substantial amount of time is required to bring a core back to a processing state, which can negatively affect performance.
In the prior art, when a system runs at high performance, and consumes a large amount of energy, a system may experience “battery droop” wherein the system may reset because there is not enough stored energy in, e.g., a storage cell or battery, to keep the system powered. In addition, in a portable device, which does have active heat mitigation, a system that is run in a performance mode for an extended period may become too hot to cool in a reasonable time, resulting in poor performance and overheating, and a poor user experience.